Notes/Domino Fix List
 |  |
SPR # MBOK6GVP8H | Fixed in 7.0.1 release | Template fix: resrc7.ntf |



Product Area: Template Technical Area: Template Platform: Cross Platform
Lotus Customer Support APAR: LO18604

SPR# MBOK6GVP8H - With this fix, the purge agent will not purge out unprocessed C&S requests that are not in the past yet.

Technote Number: 1219243

Problem:
Lotus Domino 7.0 is working as designed. To function correctly on a Domino 7
server, the Resource Reservation database must be based on the Domino 7
Resource Reservation template (RESRC7.NTF) For the best results, the design of
this database must be upgraded at the same time you upgrade the server to 7.0.
Besides the issues described above, what type of notification is there if the
RRDB design has not been upgraded? The Rooms and Resource Manager task will
detect pre-Domino 7 templates on RRDBs and create the following log entry for
each database:
"RnRMgr: The design of D6ConfRooms.nsf is not one supportable by RnRMgr.
Autoprocessing is being disabled for this dB."
What happens to reservation requests generated in a pre-Domino 7 RRDB on a
Domino 7 server? Requests generated while a pre-Domino 7 RRDB is on a Domino 7
server will remain in the hidden $Nlookup view, but they will not be
processed. Upgrading a pre-Domino 7 RRDB on a Domino 7 server to the latest
template will result in the 'stuck' reservations being processed if the
original request has not been removed by the Purge agent (which normally runs
once a day).
What are the steps to upgrade the design of the RRDB? Simply replace the
design of pre-Domino 7 RRDBs with the template (RESRC7.NTF) found on the Domino
7 server by selecting File > Database > Replace Design. After replacing the
design, you must enable, or re-enable the agents in the database using the
Domino Designer client . Be sure to use an ID that has agent rights on your
server. Then, restart the RnRMgr task for the database to become usable
immediately.
Special Note: The purge agent in the 7.0 release of the template can cause
pending reservations to be lost. This issue has been reported to Quality
Engineering as SPR# MBOK6GVP8H, and is scheduled to be addressed in Domino
7.0.1. This technote will be updated accordingly when 7.0.1 is released. The
workaround is to replace the existing purge agent with the following updated
code:
Optimized Domino 7 Resource Reservation Purge agent:
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim holdoc As notesdocument
Dim nextdoc As Notesdocument
Dim tmpdt As New NotesDateTime("")
Dim purgedate As New NotesDateTime ("Today")
Dim n As Integer
Dim StartDate As Variant
Dim OkToPurge As Integer
Dim profile As NotesDocument
Dim nextProfDoc As NotesDocument
Dim ProfileDoc As NotesDocument
Dim dcMemo As NotesDocumentCollection
Dim docMemo As NotesDocument
Set db=s.CurrentDatabase
'need to process docs with form="Notice" the same way as docs with
form="Reservation"
Set dc=db.UnprocessedSearch("@Contains(Form;""Reservation"") |
@Contains(Form;""Notice"")", tmpdt,0)
Set dcMemo=db.UnprocessedSearch("@Contains(Form;""Memo"")", tmpdt,0)
' to remove all docs with form="Memo" from db
Set docMemo = dcMemo.GetFirstDocument
For j=1 To dcMemo.count
Set holddoc=dcMemo.GetNextdocument(docMemo)
If Not(docMemo Is Nothing) Then docMemo.Remove (True)
Set docMemo = holddoc
Next
' to remove all profile docs with no "$Busyname"
Set dcProf= db.GetProfileDocCollection("CalendarProfile")
Set ProfileDoc = dcProf.GetFirstDocument
For i=1 To dcProf.count
Set nextProfDoc=dcProf.GetNextdocument(ProfileDoc)
If Not(ProfileDoc.HasItem("$BusyName")) Then ProfileDoc.Remove (True)
Set ProfileDoc = nextProfDoc
Next
Call purgedate.AdjustDay (-2)
Set doc=dc.GetFirstDocument
While Not (doc Is Nothing)
'If document is blockerdoc skip
If doc.HasItem("$CSBlocker") Then Goto donextdocument
If doc.HasItem("$NoPurge") And Not(Isempty(doc.GetItemValue("$NoPurge")(0)))
Then
Dim tmpNoPurge As New NotesDateTime(doc.GetItemValue("$NoPurge")(0))
If tmpNoPurge.IsValidDate And tmpNoPurge.DateOnly <>"" Then
StartDate=doc.GetitemValue("$NoPurge")
Else
If doc.HasItem("StartDateTime") Then
StartDate=doc.GetitemValue("StartDateTime")
Else
OKToPurge=True
End If
End If
Else
If doc.HasItem("StartDateTime") Then
StartDate=doc.GetitemValue("StartDateTime")
Else
OKToPurge=True
End If
End If
If Not(Isempty(StartDate)) Then
Forall eachstartdate In StartDate
Dim tmpstartdate As New NotesDateTime(eachstartdate)
If tmpstartdate.IsValidDate Then
If purgedate.TimeDifference(tmpstartdate)>0 Then
OkToPurge=True
Else
OkToPurge=False
Goto DoNextDocument
End If
Else
Goto donextdocument
End If
End Forall
End If
If OkToPurge Then
Set nextdoc=dc.GetNextDocument (doc)
doc.Remove (True)
Else
Call s.UpdateprocessedDoc(doc)
End If
DoNextDocument:
If doc Is Nothing Then
Set doc=nextdoc
StartDate=Empty
Else
Set doc=dc.GetNextDocument (doc)
StartDate=Empty
End If
Wend
End Sub
More >


Last Modified on 12/08/2013
Go back
 |